have the trackfilter merge operation put all waypts in one track segment
authortsteven4@gmail.com <tsteven4@gmail.com@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sat, 15 Mar 2014 17:23:28 +0000 (17:23 +0000)
committertsteven4@gmail.com <tsteven4@gmail.com@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Sat, 15 Mar 2014 17:23:28 +0000 (17:23 +0000)
instead of each waypt in it's own segment.

git-svn-id: http://gpsbabel.googlecode.com/svn/trunk@4778 f51c46e8-681c-474f-0cfe-069cfd0219fb

gpsbabel/reference/track/trackfilter_discard_out.gpx
gpsbabel/trackfilter.cc

index 9388d7c093eb244029770c88783ca99c5c9040b6..dae9bd6c5a2242c51efe86bb60d872ad82ca4efa 100644 (file)
@@ -10,8 +10,6 @@
         <ele>145.411000</ele>
         <time>2012-04-14T07:08:11.906Z</time>
       </trkpt>
-    </trkseg>
-    <trkseg>
       <trkpt lat="-36.720796000" lon="142.176806200">
         <ele>145.736000</ele>
         <time>2012-04-14T07:09:35.906Z</time>
index c9cad014f580806175a4f3eb2b3724c0e3389c50..ed1bbf969184a1e537e3396c3c092f4cf6a2c20e 100644 (file)
@@ -522,8 +522,14 @@ trackfilter_merge(void)
       wpt = (Waypoint*)elem;
       if (wpt->creation_time.isValid()) {
         buff[j++] = new Waypoint(*wpt);
+        // we will put the merged points in one track segment,
+        // as it isn't clear how track segments in the original tracks
+        // should relate to the merged track.
+        // track_add_wpt will set new_trkseg for the first point
+        // after the sort.
+        wpt->wpt_flags.new_trkseg = 0;
       }
-      track_del_wpt(track, wpt);
+      track_del_wpt(track, wpt); // copies any new_trkseg flag forward.
       delete wpt;
     }
     if (track != master) {     /* i > 0 */
@@ -540,7 +546,7 @@ trackfilter_merge(void)
   for (i = 0; i < track_pts-timeless_pts; i++) {
     wpt = buff[i];
     if ((prev == NULL) || (prev->GetCreationTime() != wpt->GetCreationTime())) {
-      route_add_wpt(master, wpt);
+      track_add_wpt(master, wpt);
       prev = wpt;
     } else {
       delete wpt;